package com.demo.demoproject.enums;

import org.jetbrains.annotations.NotNull;

import java.util.Objects;

/**
 * 身份枚举，表示不同的身份类型。
 */
public enum Identity {
    OLDER(0),
    YOUNGER(1);

    private final int value;

    /**
     * 构造函数
     * @param value 枚举对应的值
     */
    Identity(int value) {
        this.value = value;
    }

    /**
     * 获取枚举对应的值
     * @return 枚举对应的值
     */
    public int getValue() {
        return value;
    }

    /**
     * 根据值获取对应的枚举常量
     * @param value 身份值
     * @return 值对应的身份
     * @throws IllegalArgumentException 如果值没有对应的枚举常量
     */
    @NotNull
    public static Identity getIdentityByValue(int value) {
        for (Identity identity : Identity.values()) {
            if (identity.getValue() == value) {
                return identity;
            }
        }
        throw new IllegalArgumentException("Unknown value: " + value);
    }
}